package services

//import (
//	"github.com/mudler/LocalAI/core/config"
//	"github.com/mudler/LocalAI/pkg/xsync"
//)
//
//type GalleryOp[T any] struct {
//	ID                 string
//	GalleryElementName string
//	Delete             bool
//
//	Req              T
//	Galleries        []config.Gallery
//	BackendGalleries []config.Gallery
//}
//
//type GalleryOpStatus struct {
//	Deletion           bool    `json:"deletion"` // Deletion is true if the operation is a deletion
//	FileName           string  `json:"file_name"`
//	Error              error   `json:"error"`
//	Processed          bool    `json:"processed"`
//	Message            string  `json:"message"`
//	Progress           float64 `json:"progress"`
//	TotalFileSize      string  `json:"file_size"`
//	DownloadedFileSize string  `json:"downloaded_size"`
//	GalleryElementName string  `json:"gallery_element_name"`
//}
//
//type OpCache struct {
//	status         *xsync.SyncedMap[string, string]
//	galleryService *GalleryService
//}
//
//func NewOpCache(galleryService *GalleryService) *OpCache {
//	return &OpCache{
//		status:         xsync.NewSyncedMap[string, string](),
//		galleryService: galleryService,
//	}
//}
//
//func (m *OpCache) Set(key string, value string) {
//	m.status.Set(key, value)
//}
//
//func (m *OpCache) Get(key string) string {
//	return m.status.Get(key)
//}
//
//func (m *OpCache) DeleteUUID(uuid string) {
//	for _, k := range m.status.Keys() {
//		if m.status.Get(k) == uuid {
//			m.status.Delete(k)
//		}
//	}
//}
//
//func (m *OpCache) Map() map[string]string {
//	return m.status.Map()
//}
//
//func (m *OpCache) Exists(key string) bool {
//	return m.status.Exists(key)
//}
//
//func (m *OpCache) GetStatus() (map[string]string, map[string]string) {
//	processingModelsData := m.Map()
//
//	taskTypes := map[string]string{}
//
//	for k, v := range processingModelsData {
//		status := m.galleryService.GetStatus(v)
//		taskTypes[k] = "Installation"
//		if status != nil && status.Deletion {
//			taskTypes[k] = "Deletion"
//		} else if status == nil {
//			taskTypes[k] = "Waiting"
//		}
//	}
//
//	return processingModelsData, taskTypes
//}
